package com.muse;

/**
 * 断言是通过关键字assert来定义的，一般的，它有两种形式。
 * assert <boolean表达式>
 *     如果boolean表达式为true，则程序继续执行。如果为false，则程序抛出AssertionError，并终止执行。
 * assert <boolean表达式> : <错误信息表达式>
 *     如果boolean表达式为true，则程序继续执行。如果为false，则程序抛出java.lang.AssertionError，并输入错误信息表达式。
 *
 * 由于JVM是关闭断言的！所以我们可以通过命令模式运行，带参数"-ea"即可，例如：java -ea AssertTest
 * 比如idea，可这样设置: Run as -> Run Configurations -> Arguments -> VM arguments：敲入"-ea"即可。
 */
public class AssertTest {
    public static void main(String[] args) {
        square(-1);
        // squareWithErrorMsg(-1);
    }
    public static void squareWithErrorMsg(int num) {
        assert num > 0 : "输入的num要保证大于0！"; // 如果为false，则程序抛出java.lang.AssertionError，并输入错误信息表达式
        System.out.println("断言并未终止程序！");
    }

    public static void square(int num) {
        assert num > 0 ; // 如果为false，则程序抛出AssertionError，并终止执行
        System.out.println("断言并未终止程序！");
    }
}
